package com.deyuanyun.pic.pipe.mapper.dao;

import com.deyuanyun.pic.pipe.controller.dto.*;
import com.deyuanyun.pic.pipe.domain.*;
import com.deyuanyun.pic.pipe.domain.bo.*;
import com.github.pagehelper.Page;

import java.util.List;

/**
 * “管道数据查询” 持久实现接口
 *
 * @author huanglw
 * @date  2016-10-10
 *
 * History: [修改人][时间][修改描述]
 */
public interface PipeLineMgrDao {

    /**
     * 条件查询 管道信息
     *
     * @param pipeSegmentInfoQuery
     * @return
     */
    Page<PipeSegmentInfoBO> queryPipeSegmentInfo(PipeSegmentInfoQuery pipeSegmentInfoQuery);

    /**
     * 统计管道高层
     *
     * @param pipeBaseQuery
     * @return
     */
    List<PipeLineStatisticsBO> statistics(PipeBaseQuery pipeBaseQuery);

    /**
     * 条件查询 场站阀室
     *
     * @param valveRoomQuery
     * @return
     */
    Page<ValveRoomBO> queryValveRoom(ValveRoomQuery valveRoomQuery);

    /**
     * 条件查询 线路阀门
     *
     * @param valveQuery
     * @return
     */
    Page<Valve> queryValve(ValveQuery valveQuery);

    /**
     * 条件查询 钢管信息
     *
     * @param pipeBaseQuery
     * @return
     */
    Page<SteelPipe> querySteelPipe(PipeBaseQuery pipeBaseQuery);

    /**
     * 条件查询 三通信息
     *
     * @param teeQuery
     * @return
     */
    Page<Tee> queryTee(TeeQuery teeQuery);

    /**
     * 条件查询 开孔
     *
     * @param pipeBaseQuery
     * @return
     */
    Page<Tap> queryTap(PipeBaseQuery pipeBaseQuery);

    /**
     * 条件查询 封堵物信息
     *
     * @param pipeBaseQuery
     * @return
     */
    Page<Closure> queryClosure(PipeBaseQuery pipeBaseQuery);

    /**
     * 条件查询 异管径信息
     *
     * @param pipeBaseQuery
     * @return
     */
    Page<Reducer> queryReducer(PipeBaseQuery pipeBaseQuery);

    /**
     * 条件查询 收发球筒
     *
     * @param piggingStructureQuery
     * @return
     */
    Page<PiggingStructure> queryPiggingStructure(PiggingStructureQuery piggingStructureQuery);

    /**
     * 条件查询 套管
     *
     * @param pipeBaseQuery
     * @return
     */
    Page<Cross> queryCross(PipeBaseQuery pipeBaseQuery);

    /**
     * 条件查询 穿跨越
     *
     * @param pipeCrossQuery
     * @return
     */
    Page<PipeCross> queryPipeCross(PipeCrossQuery pipeCrossQuery);

    /**
     * 条件查询 地面标识
     *
     * @param identificationQuery
     * @return
     */
    Page<Identification> queryIdentification(IdentificationQuery identificationQuery);

    /**
     * 条件查询 水工保护
     *
     * @param protectionQuery
     * @return
     */
    Page<Protection> queryProtection(ProtectionQuery protectionQuery);

    /**
     * 条件查询 输送介质
     *
     * @param transformMediaQuery
     * @return
     */
    Page<TransformMedia> queryTransformMedia(TransformMediaQuery transformMediaQuery);
}